package com.fl.nj.mapper;

import com.fl.nj.entity.Area;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 区域Mapper接口
 * 用于定义对Area实体的数据库操作方法
 */
@Mapper
public interface AreaMapper {
    /**
     * 保存区域
     * @param area 区域对象
     */
    void save(Area area);

    /**
     * 更新区域
     * @param area 区域对象
     */
    void update(Area area);

    /**
     * 根据ID获取区域
     * @param id 区域ID
     * @return 区域对象
     */
    Area getById(Long id);

    /**
     * 根据区域名称获取区域
     * @param areaName 区域名称
     * @return 区域对象
     */
    Area getByAreaName(@Param("areaName") String areaName);

    /**
     * 获取所有区域
     * @return 区域列表
     */
    List<Area> getAll();

    /**
     * 删除区域
     * @param id 区域ID
     */
    void delete(Long id);

    /**
     * 获取区域的设备数量
     * @param areaId 区域ID
     * @return 设备数量
     */
    int countDevices(Long areaId);
}